<?php
    
    namespace addons\zpwxsys\model;
    
    
    class Order extends BaseModel
    {
        protected $hidden = ['user_id', 'delete_time', 'update_time'];
        protected $autoWriteTimestamp = true;
        
        protected $name = 'zpwxsys_order';
        
        public function getSnapItemsAttr($value)
        {
            if (empty($value)) {
                return null;
            }
            return json_decode($value);
        }
        
        public function getSnapAddressAttr($value)
        {
            if (empty($value)) {
                return null;
            }
            return json_decode(($value));
        }
        
        public static function getSummaryByUser($uid, $page = 1, $size = 15)
        {
            $pagingData = self::where('user_id', '=', $uid)->order('create_time desc')->paginate($size, true, ['page' => $page]);
            return $pagingData;
        }
        
        public static function getSummaryByPage($page = 1, $size = 20)
        {
            $pagingData = self::order('create_time desc')->paginate($size, true, ['page' => $page]);
            return $pagingData;
        }
        
        public function products()
        {
            return $this->belongsToMany('Product', 'order_product', 'product_id', 'order_id');
        }
    }
